package hillclimbing;

import java.util.Random;

public class PlaatsenMatrix {

    private int[][] afstanden;
    private int aantal_steden;
    private int maximale_afstand = 100;
    
    public PlaatsenMatrix(int aantalSteden) {

	afstanden = new int[aantalSteden][aantalSteden];
	aantal_steden = aantalSteden;


	Random generator = new Random();

	for (int i=0; i<aantalSteden; i++) {
	    for (int j=i; j<aantalSteden; j++) {
		if (i == j){
		    //afstand naar zichzelf is altijd 0
		    afstanden[i][j] = 0;
		}
		else {
		    afstanden[i][j] = generator.nextInt(maximale_afstand);
		    // afstand i naar j == j naar i
		    afstanden[j][i] = afstanden[i][j];
		}
	    }
	}
    }
    public int getMaximaleAfstand(){
	return maximale_afstand;
    }
    public int getAantalSteden() {     
	return aantal_steden;
    }

    public int getAfstand(int plaats_vertrek, int plaats_aankomst) {

	return afstanden[plaats_vertrek][plaats_aankomst];
    }

    public String toString() {
	String str = "Afstandsmatrix \n";

	str += "   ";
	for (int c=0; c<this.aantal_steden;c++){
	    str += c+":\t";
	}
	str += "\n";
	for (int i=0; i<aantal_steden; i++) {
	    str += i + ": ";
	    for (int j=0; j<aantal_steden; j++) {
		if (j == aantal_steden - 1)
		    str += afstanden[i][j] + "\n";
		else
		    str += afstanden[i][j] + "\t";
	    }
	}
	return str;
    }

}